home *** CD-ROM | disk | FTP | other *** search
/ Aminet 32 / Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso / Aminet / biz / dopus / IfxDopus.lha / IFx.dopus next >
Text File  |  1999-05-26  |  2KB  |  98 lines

  1. /*
  2.  *  Load selected files and directories from a DOpus5 lister into Ifx.
  3.  *  If an Ifx port is found, entries are loaded into a running Ifx.
  4.  *  Otherwise Ifx is invoked first, using appropriate stack size.
  5.  *  
  6.  * Created by Richard Wheeldon by modifying an existing script for Emacs
  7.  * by David Lübbren.
  8.  *
  9.  *  Note: As I start the 'fifo-handler' in my User-startup I only test
  10.  *        for its presence in this script.
  11.  *
  12.  *  Tested using ImageFX 3.3 beta 2 and Dopus 5.8
  13.  *
  14.  *  Call: Arexx DOpus5:Arexx/Ifx.dopus5 {Qp}
  15.  *
  16.  */
  17.  
  18. StackSize  = 60000
  19. IfxPort  = 'IMAGEFX.1'
  20. IfxCmd   = 'Run <nil: >nil: Imagefx3:Imagefx'
  21. DefaultDir = 'ram:'
  22. message    = 'Loading into Ifx...'
  23.  
  24. lf         = '0a'x
  25.  
  26. OPTIONS RESULTS
  27.  
  28. PARSE ARG dopusport
  29. IF dopusport ~= "" THEN ADDRESS VALUE dopusport
  30. ELSE DO
  31.   SAY "No DOpus running !"
  32.   EXIT
  33. END
  34.  
  35. SourcePath = DefaultDir
  36. NoLister   = 1
  37.  
  38. lister query source
  39. IF rc = 0 THEN DO
  40.   PARSE VAR result handle .
  41.   NoLister = 0
  42.   lister set handle busy on
  43.   lister query handle path
  44.   IF rc = 0 THEN DO
  45.     SourcePath = STRIP(result, 'B', '"')
  46.     lister query handle selentries stem Entry.
  47.   END
  48. END
  49.  
  50.  
  51. IF ~SHOW('Ports', IfxPort) THEN DO
  52.   PRAGMA('Stack', StackSize)
  53.   PRAGMA('Directory', SourcePath)
  54.   ADDRESS COMMAND 
  55.   IfxCmd
  56.   'WaitForPort' IfxPort
  57.   ADDRESS
  58.   IF rc = 5 THEN DO
  59.     dopus request '"Can''t find ImageFX port '''IfxPort'''" Cancel'
  60.     SIGNAL quitit
  61.   END
  62. END  
  63.  
  64.  
  65. IF NoLister = 0 & Entry.count > 0 THEN DO
  66.   lister set handle progress Entry.count message
  67.   lister set handle title message
  68.   lister refresh handle full
  69.       
  70.   DO i=0 TO Entry.count-1
  71.     lister query handle abort
  72.     IF result THEN
  73.       SIGNAL quitit
  74.  
  75.     lister set handle progress count i+1
  76.     lister set handle progress name Entry.i
  77.  
  78.     ADDRESS VALUE IfxPort
  79.     'LOADBUFFER ' || SourcePath || Entry.i ' NEW'
  80.  
  81.     ADDRESS
  82.     lister select handle '"' || Entry.i || '"' off
  83.     lister refresh handle
  84.   END
  85. END
  86.  
  87. SIGNAL quitit
  88.  
  89.  
  90. quitit:
  91.   IF NoLister = 0 THEN DO
  92.     lister set handle title
  93.     lister refresh handle full
  94.     lister set handle busy off
  95.   END
  96.   EXIT
  97.  
  98.